home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / xarchie-2.0.9 / Imakefile < prev    next >
Makefile  |  1995-06-28  |  8KB  |  234 lines

  1. CTRBDESTDIR=/usr/skunk
  2.  
  3. /**/#
  4. /**/# Imakefile for xarchie : X11 Browser interface to Archie
  5. /**/#
  6. /**/# George Ferguson, ferguson@cs.rochester.edu, 12 Sep 1991.
  7. /**/# Version 2.0: 23 Apr 1993.
  8. /**/#
  9. /**/# Unless otherwise indicated, you have to delete both `/**/' and the
  10. /**/# leading `#' sign to uncomment something. To comment something out,
  11. /**/# you need to add both the `/**/' (for cpp via imake) and `#' (for
  12. /**/# make). Just for completeness, if you're reading this in a Makefile,
  13. /**/# there will be some empty `' things above -- see the Imakefile.
  14. /**/#
  15.  
  16. #include "config.h"
  17.  
  18. /**/# Where do you want this stuff? Uncomment and adjust these to change the
  19. /**/# destinations of "make install" and "make install.man" if the defaults
  20. /**/# are not satisfactory.
  21. /**/#BINDIR = bin
  22. /**/#MANDIR = man/man1
  23. /**/# Use this for R5
  24. /**/#MANSUFFIX = 1
  25. /**/# Use this for R4 (leave one # sign since these are cpp commands for imake)
  26. /**/##undef ManSuffix
  27. /**/##define ManSuffix 1
  28. BINDIR        = $(CTRBDESTDIR)/bin
  29. LIBDIR        = $(CTRBDESTDIR)/lib
  30. MANDIR        = $(CTRBDESTDIR)/man/man.1
  31. MANSUFFIX    = 1
  32. XAPPLOADDIR    = $(LIBDIR)/xarchie-2.0.9
  33. MKDIRHIER    = /bin/sh /usr/bin/X11/mkdirhier
  34.  
  35. /**/# Where is the app-defaults to C converter?
  36. /**/# Only needed if you change the app-defaults file Xarchie.ad and want the
  37. /**/# changes compiled into the program. If you don't have ad2c you should
  38. /**/# remove the extra clean target for Xarchie.ad.h below. If you lose
  39. /**/# Xarchie.ad.h and can't remake it, create it to be an empty file. Of
  40. /**/# course then you'll have to be able to find the resource file at run time.
  41. /**/# If your ad2c came from this xarchie distribution, then use the following
  42. /**/# target, otherwise change it to reflect where you put ad2c.
  43. AD2C = Ad2c/ad2c.script
  44.  
  45. /**/# How excited are you about debugging? This can be -g, -O, or nothing.
  46. /**/#CDEBUGFLAGS = -g
  47.  
  48. /**/# If the help strings make your executable too large, disable the
  49. /**/# online help by commenting out the following lines.
  50. HELP = -DHELP
  51. HELPC = help.c
  52. HELPO = help.o
  53.  
  54. /**/# To enable Prospero tracing (controlled by the -debug option),
  55. /**/# uncomment this.
  56. /**/#PDEBUG = -DDEBUG
  57.  
  58. /**/# Does your system have re_comp() and re_exec(), or regcmp() and regex()
  59. /**/# [in the case of A/UX]? If not, adjust the following definitions.
  60. #if !defined(HAVE_RE_COMP) || !defined(HAVE_REGCMP)
  61. REGEXC = regex.c
  62. REGEXO = regex.o
  63. #endif
  64.  
  65. /**/# If you don't have <sys/param.h> to define MAXPATHLEN, then adjust
  66. /**/# the following definition.
  67. #ifndef HAVE_SYS_PARAM_H
  68. MAXPATHLEN = -DMAXPATHLEN=256
  69. #endif
  70.  
  71. /**/# If you don't have strcasecmp() and strncasecmp(), adjust the
  72. /**/# following definitions:
  73. #ifndef HAVE_STRCASECMP
  74. STRCASECMP = -DSTRCASECMP
  75. STRCASECMPC = strcasecmp.c
  76. STRCASECMPO = strcasecmp.o
  77. #endif
  78.  
  79. /**/# If your system does not use DNS hostname lookup by default, you
  80. /**/# need to uncomment the following definition. This will be apparent
  81. /**/# if the program builds but gives the error: "Can't resolve hostname".
  82. /**/# You can test this by building and running resolv.c.
  83. #ifdef NEED_LRESOLV
  84. RESOLV_LIB = -lresolv
  85. #endif
  86.  
  87. /**/# You can enable the use of a FileChooser widget for dialogs that
  88. /**/# require a filename (Save, Load, Write, etc). If your system has
  89. /**/# trouble with the subclassing of widgets for the FileChooser
  90. /**/# class or with the device-independent directory routines in FWF/Dir,
  91. /**/# you should remove the #define of UseFileChooser.
  92. /**/# NOTE: If you are reading this in the Makefile and nothing follows,
  93. /**/#       then use of the FileChooser widget was disabled in the Imakefile.
  94. #define UseFileChooser
  95. #ifdef UseFileChooser
  96. FCHOOSER_DEF = -DFILECHOOSER
  97. FCHOOSER_DIR = FWF/FileChooser
  98. FCHOOSER_INC = -I$(FCHOOSER_DIR)
  99. FCHOOSER_LIB = -L$(FCHOOSER_DIR) -lFChooser
  100. FCHOOSER_DEP = $(FCHOOSER_DIR)/libFChooser.a
  101. DIR_DIR =     FWF/Dir
  102. DIR_INC =     -I$(DIR_DIR)
  103. DIR_LIB =     -L$(DIR_DIR) -lDir
  104. DIR_DEP =     $(DIR_DIR)/libDir.a
  105. FCHOOSER_DIRS = $(FCHOOSER_DIR) $(DIR_DIR)
  106. FCHOOSER_INCS = $(FCHOOSER_INC) $(DIR_INC)
  107. FCHOOSER_LIBS = $(FCHOOSER_LIB) $(DIR_LIB)
  108. FCHOOSER_DEPS = $(FCHOOSER_DEP) $(DIR_DEP)
  109. #endif
  110.  
  111. /**/# You want to use the MultiList widget if possible. If you have problems
  112. /**/# with the subclassing in your version of X, you can use the regular
  113. /**/# Athena List widget by removing the #define of UseMultiList. Of course
  114. /**/# then you will not be able to make multiple selections.
  115. /**/# NOTE: If you are reading this in the Makefile and nothing follows,
  116. /**/#       then use of the MultiList widget was disabled in the Imakefile.
  117. #define UseMultiList
  118. #ifdef UseMultiList
  119. MULTILIST_DEF =    -DMULTILIST
  120. MULTILIST_DIR =    FWF/MultiList
  121. MULTILIST_INC =    -I$(MULTILIST_DIR)
  122. MULTILIST_LIB =    -L$(MULTILIST_DIR) -lMultiList
  123. MULTILIST_DEP =    $(MULTILIST_DIR)/libMultiList.a
  124. #endif
  125.  
  126. /**/#########################################################################
  127. /**/# Nothing to change below here...
  128.  
  129. PSRCS = atalloc.c dirsend.c get_pauth.c get_vdir.c perrmesg.c ptalloc.c \
  130.     $(REGEXC) stcopy.c support.c vl_comp.c vlalloc.c
  131. CSRCS = query.c browser.c db.c selection.c status.c saveload.c \
  132.     inet_ntoa.c hostname.c username.c \
  133.     weight.c ftp.c syserr.c $(STRCASECMPC)
  134. XSRCS = xarchie.c display-x.c actions.c ftp-actions.c types.c \
  135.     settings.c file-panel.c view-file.c about.c $(HELPC) \
  136.     menu.c m-file.c m-query.c m-settings.c m-file-panel.c \
  137.     fchooser.c popups.c alert.c confirm.c syntax.c xutil.c tilde.c
  138.  
  139. POBJS = atalloc.o dirsend.o get_pauth.o get_vdir.o perrmesg.o ptalloc.o \
  140.     $(REGEXO) stcopy.o support.o vl_comp.o vlalloc.o
  141. COBJS = query.o browser.o db.o selection.o status.o saveload.o \
  142.     inet_ntoa.o hostname.o username.o \
  143.     weight.o ftp.o syserr.o $(STRCASECMPO)
  144. XOBJS = xarchie.o display-x.o actions.o ftp-actions.o types.o \
  145.     settings.o file-panel.o view-file.o about.o $(HELPO) \
  146.     menu.o m-file.o m-query.o m-settings.o m-file-panel.o \
  147.     fchooser.o popups.o alert.o confirm.o syntax.o xutil.o tilde.o
  148.  
  149. SRCS = $(PSRCS) $(CSRCS) $(XSRCS)
  150. OBJS = $(POBJS) $(COBJS) $(XOBJS)
  151.  
  152. DEFINES =    -DARCHIE -DXARCHIE -DX11 $(MAXPATHLEN) $(STRCASECMP) \
  153.         $(HELP) $(FCHOOSER_DEF) $(MULTILIST_DEF)
  154. INCLUDES =    -I. $(FCHOOSER_INCS) $(MULTILIST_INC)
  155. DEPLIBS =    $(FCHOOSER_DEPS) $(MULTILIST_DEP) XawClientDepLibs
  156. LOCAL_LIBRARIES=$(FCHOOSER_LIBS) $(MULTILIST_LIB) XawClientLibs $(RESOLV_LIB)
  157.  
  158. #ifdef UseMultiList
  159. #ifdef UseFileChooser
  160. SUBDIRS = $(FCHOOSER_DIRS) $(MULTILIST_DIR)
  161. #else /* UseMultiList && !UseFileChooser */
  162. SUBDIRS = $(MULTILIST_DIR)
  163. #endif /* UseMultiList && !UseFileChooser */
  164. #else /* !UseMultiList */
  165. #ifdef UseFileChooser
  166. SUBDIRS = $(FCHOOSER_DIRS)
  167. #endif /* !UseMultiList && UseFileChooser */
  168. #endif /* !UseMultiList */
  169.  
  170. #if defined(UseMultiList) || defined(UseFileChooser)
  171. #define IHaveSubdirs
  172. #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' 'CC=$(CC)'
  173. #endif
  174.  
  175. ComplexProgramTarget(xarchie)
  176. InstallAppDefaults(Xarchie)
  177. SpecialObjectRule($(POBJS),,$(PDEBUG))
  178.  
  179. #ifdef UseMultiList
  180. $(MULTILIST_DEP):
  181.     (cd $(MULTILIST_DIR); $(MAKE) PassCDebugFlags)
  182. #endif
  183.  
  184. #ifdef UseFileChooser
  185. $(FCHOOSER_DEP):
  186.     (cd $(FCHOOSER_DIR); $(MAKE) PassCDebugFlags)
  187. $(DIR_DEP):
  188.     (cd $(DIR_DIR); $(MAKE) PassCDebugFlags)
  189. #endif
  190.  
  191. includes:: Xarchie.ad.h help-text1.h help-text2.h
  192.  
  193. /**/#
  194. /**/# Make C code for fallback resources from application resource file
  195. /**/#
  196. Xarchie.ad.h: Xarchie.ad
  197.     sh $(AD2C) Xarchie.ad >Xarchie.ad.h
  198.  
  199. /**/#
  200. /**/# Make Help text from manpage
  201. /**/#
  202. help-text1.h: xarchie.man
  203.     sh ./help-text1.sh >help-text1.h
  204.  
  205. help-text2.h: help-text1.h
  206.     sh ./help-text2.sh <help-text1.h >help-text2.h
  207.  
  208. /**/#
  209. /**/# What to do when there's nothing to do...
  210. /**/#
  211. World:
  212.     make Makefile
  213.     make Makefiles
  214.     make includes
  215.     make depend
  216.     make clean
  217.     make
  218.  
  219. /**/#
  220. /**/# For debugging with Saber
  221. /**/#
  222. saberload:
  223.     # setopt ansi
  224.     # source xsaber.suppress
  225.     # load -DNeedFunctionPrototypes $(ALLDEFINES) $(HELP) $(SRCS)
  226.     # cd FWF/MultiList
  227.     # make saber
  228.     # cd ../Dir
  229.     # make saber
  230.     # cd ../FileChooser
  231.     # make saber
  232.     # cd ../..
  233.     # load XawClientLibs
  234.